package utils;

import java.io.InputStream;
import java.util.Properties;

/**
 * @author 吴阳基
 * @datetime 2024/1/18 9:29
 */
public class ConfigManager {
    private static Properties properties;
    private static ConfigManager configManager = new ConfigManager();

    /**
     * 私有有化构造方法，防止外部调用，实现单例模式
     * 在构造造方法中加载配置文件，并将其保存到properties对象中
     */

    private ConfigManager() {

        String configFile = "database.properties";
        properties = new Properties();
        InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
        try {
            properties.load(is);
            is.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 懒汉模式，在调用getInstance方法的时候才创建对象，并且只创建一次
     * @return
     */
//    public static synchronized ConfigManager getInstance() {
//        if (configManager == null) {
//            configManager = new ConfigManager();
//        }
//        return configManager;
//    }

    /**
     * 饿汉模式，在类加载的时候就创建对象，并且只创建一次
     * @return
     */
    public static ConfigManager getInstance() {
        return configManager;
    }


    public String getValue(String key) {
        return properties.getProperty(key);
    }

}
